package gscrot.uploader.imgur; import java.awt.image.BufferedImage; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import javax.imageio.ImageIO; import sun.misc.BASE64Encoder; public class Imgur { public static final String CLIENT_ID = "e644a52e2191c66"; public static String upload(BufferedImage image) throws Exception { ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(image, "png", baos); byte[] bImage = baos.toByteArray(); return upload(bImage); } public static String upload(byte[] b) throws Exception { URL url = new URL("https://api.imgur.com/3/image"); HttpURLConnection uc = (HttpURLConnection) url.openConnection(); String sImage = new BASE64Encoder().encode(b); String postdata = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(sImage, "UTF-8"); uc.setDoOutput(true); uc.setDoInput(true); uc.setRequestMethod("POST"); uc.setRequestProperty("Authorization", "Client-ID " + CLIENT_ID); uc.connect(); OutputStreamWriter writer = new OutputStreamWriter(uc.getOutputStream()); writer.write(postdata); writer.flush(); BufferedReader reader = new BufferedReader(new InputStreamReader(uc.getInputStream())); String s = ""; String line; while ((line = reader.readLine()) != null) { s += line + "\n"; } writer.close(); reader.close(); System.out.println(s); return s.toString(); } }